package com.registration.service;

import com.registration.bean.PaymentBean;
import java.util.List;

public interface PaymentService {

    /**
     * 查询就诊人待缴费项目，待支付
     */
    List<PaymentBean> selectPendingPaymentItemsByUserId(Integer userId);

    /**
     * 查询就诊人缴费记录,历史记录
     */
    List<PaymentBean> selectPaymentRecordsByUserId(Integer patientId);

    /**
     * 新增缴费记录
     */
    int insertPaymentRecord(PaymentBean paymentBean);

    /**
     * 更新支付项目状态为已支付
     */
    int updatePaymentItemStatus(Integer record_id);

    /**
     * 根据订单ID获取待支付项目
     */
    List<PaymentBean> selectPendingItemsByOrderId(Integer orderId);

    /**
     * 根据订单ID获取待支付项目
     */
    PaymentBean selectPaymentByTradeNo(String tradeNo);

    /**
     * 申请退款
     */
    int applyRefund(PaymentBean paymentBean);

    /**
     * 处理支付结果通知
     */
    boolean processPaymentNotify(PaymentBean paymentBean);

    /**
     * 查询超时的待支付订单（状态为0且超过指定时间未支付）
     * @param timeoutMinutes 超时时间（分钟）
     * @return 超时的订单列表
     */
    List<PaymentBean> selectTimeoutPendingPayments(int timeoutMinutes);

    /**
     * 取消超时的待支付订单
     * @param timeoutMinutes 超时时间（分钟）
     * @return 取消的订单数量
     */
    int cancelTimeoutPendingPayments(int timeoutMinutes);

}
